package io.github.chutian0610.sqlparser.token

sealed class WhiteSpaceEnum(open val text: String) {
    object Space : WhiteSpaceEnum(" ") {
        override fun toString(): String = " "
    }

    object Tab : WhiteSpaceEnum("\t") {
        override fun toString(): String = "\t"
    }

    object NewLine : WhiteSpaceEnum("\n") {
        override fun toString(): String = "\n"
    }

    data class SingleLineComment(val prefix: String, override val text: String) : WhiteSpaceEnum(text) {
        override fun toString(): String = "$prefix $text"
    }

    data class MultiLineComment(val prefix: String, override val text: String, val suffix: String) :
        WhiteSpaceEnum(text) {
        override fun toString(): String = "$prefix $text $suffix"
    }
}